#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 5;
int t , n , a[N];
void solve()
{
cin >> n;int sum = 0;
for(int i = 2;i <= n;i += 2) cin >> a[i];
for(int i = 2;i <= n;i += 2)
{
int ansa = -1;
if(!(a[i] & 1) && !(a[i] % 4 == 0))
{
puts("No");
return;
}
for(int j = 1;j * j <= a[i];j ++)
{
if(a[i] % j) continue;
int x = j , y = a[i] / j;
if((x & 1) ^ (y & 1)) continue;
int A = (y - x) / 2 , B = (x + y) / 2;
if(A * A <= sum || B * B <= sum + a[i]) continue;
ansa = A * A;
}
if(ansa == -1)
{
puts("No");
return ;
}
a[i - 1] = ansa - sum;
sum += a[i - 1] + a[i];
}
puts("Yes");
for(int i = 1;i <= n;i ++) cout << a[i] << ' ';
}
signed main()
{
t = 1;
while(t --) solve();
return 0;
}
1562B - Scenes From a Memory | 1521A - Nastia and Nearly Good Numbers |
208. Implement Trie | 1605B - Reverse Sort |
1607C - Minimum Extraction | 1604B - XOR Specia-LIS-t |
1606B - Update Files | 1598B - Groups |
1602B - Divine Array | 1594B - Special Numbers |
1614A - Divan and a Store | 2085. Count Common Words With One Occurrence |
2089. Find Target Indices After Sorting Array | 2090. K Radius Subarray Averages |
2091. Removing Minimum and Maximum From Array | 6. Zigzag Conversion |
1612B - Special Permutation | 1481. Least Number of Unique Integers after K Removals |
1035. Uncrossed Lines | 328. Odd Even Linked List |
1219. Path with Maximum Gold | 1268. Search Suggestions System |
841. Keys and Rooms | 152. Maximum Product Subarray |
337. House Robber III | 869. Reordered Power of 2 |
1593C - Save More Mice | 1217. Minimum Cost to Move Chips to The Same Position |
347. Top K Frequent Elements | 1503. Last Moment Before All Ants Fall Out of a Plank |